The present invention relates to semantic authoring tools, and more particularly, to semantic authoring and training tools for mapping natural language input into a runtime.
Semantic systems attempt to map a natural language input string, such as “find all email from Bill to David about semantics”, to a schema, such as a schema for an email program called “Fastmail” (e.g. “Fastmail.email[from=“Bill”, to=“David”, subject=“semantics”]. In order to generate this mapping, a programmer (author) creates a schema that defines an application domain. For Example, the schema defines an object such as a Fastmail.email object that includes several relationships. One such relationship can be called “to” with a destination type “person”, a relationship “from” with a destination type “person”, and a relationship called “subject” with a destination type “string”.
The schema is loaded into a semantics engine, and the programmer (author) hopes that it compiles, that it actually represents the domain properly, and that the schema can handle the range of inputs that will be given to it. Typically, the programmer (author) then tunes the system using queries obtained by or from users, creates a set of expected results, and uses those results to compile a statistical model.
This process for creating a natural language schema can be laborious and prone to errors. Without any schema validation, it is easy for a programmer to make errors in the schema that are only caught at compile time by the semantics engine. In addition, by separating the authoring of the natural language component from the runtime on which it operates, the programmer (author) is unable to determine if the schema appropriately models the domain.
Conventionally, semantic schemas are created independently of the runtime engine, so that the author of the semantic schema cannot know how well the schema will work (or even if the schema will work) until the author opens a separate application that can load the schema. Since the authoring environment is independent from the runtime, there is no schema validation, and it is very easy to create improper schemas that will not compile, that are inefficient for the task, or that are incapable of representing the desired domain.
There is ongoing need for natural language authoring, runtime, and training tools for interfacing with existing program domains. Embodiments of the present invention provide solutions to these and other problems and provide advantages over existing semantic authoring tools.